{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 分类训练\n",
    "\n",
    "### 机器学习的HelloWorld，一个新的分类算法，都会看看在MNIST上的执行结果"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "b'\\x00\\x00\\x00\\x02'"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import struct\n",
    "struct.pack('>i',2)  #高位字节 i:int"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(2051, 60000, 28, 28)\n",
      "47040000\n"
     ]
    }
   ],
   "source": [
    "import struct\n",
    "with open('./MNIST_data/train-images-idx3-ubyte','rb') as f:\n",
    "    buffer = f.read(4*4)   # 4个int\n",
    "    head = struct.unpack('>iiii',buffer)\n",
    "    print(head)\n",
    "    length = head[1] * head[2] * head[3]\n",
    "    print(length)\n",
    "    buffer = f.read(length)\n",
    "    data = struct.unpack('>{}B'.format(length),buffer)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "47040000"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tuple"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "imgs = np.reshape(data,(head[1],head[2],head[3]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000, 28, 28)"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "imgs.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAMb0lEQVR4nO3db4gc9R3H8c8ntkWIotHQM9rUtMUnUmwsQQo9SoppiCIkfRKaByXS0vNBlQoVIlaoUgqhVouIFq5o/pTWUog2oZS2NkRtCZacksaoidqQYI54VxGpeZTqfftgJ3LG29lzZ2Znk+/7Bcfuznd35suQT+bf7vwcEQJw7lvQdgMABoOwA0kQdiAJwg4kQdiBJD4xyIXZ5tQ/0LCI8FzTK23Zba+xfdj267bvrDIvAM1yv9fZbZ8n6VVJ35B0XNI+SRsi4uWSz7BlBxrWxJb9OkmvR8SRiDgl6XeS1laYH4AGVQn7FZLemPX6eDHtQ2yP2Z6wPVFhWQAqavwEXUSMSxqX2I0H2lRlyz4paems158ppgEYQlXCvk/SVbY/Z/tTkr4laVc9bQGoW9+78RHxnu1bJf1F0nmSHouIl2rrDECt+r701tfCOGYHGtfIl2oAnD0IO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSKLvIZuBpt19992l9Xvvvbe0vmBB923ZypUrSz/7zDPPlNbPRpXCbvuopHclvS/pvYhYUUdTAOpXx5b96xHxVg3zAdAgjtmBJKqGPST91fbztsfmeoPtMdsTticqLgtABVV340cjYtL2pyU9ZftQRDw7+w0RMS5pXJJsR8XlAehTpS17REwWj9OSnpR0XR1NAahf32G3vdD2haefS1ot6WBdjQGoV5Xd+BFJT9o+PZ/fRsSfa+kKKdx8882l9U2bNpXWZ2Zm+l52RL4jyr7DHhFHJH2pxl4ANIhLb0AShB1IgrADSRB2IAnCDiTBT1zRmiuvvLK0fv755w+okxzYsgNJEHYgCcIOJEHYgSQIO5AEYQeSIOxAElxnR6NWrVrVtXbbbbdVmvehQ4dK6zfddFPX2tTUVKVln43YsgNJEHYgCcIOJEHYgSQIO5AEYQeSIOxAElxnRyWjo6Ol9S1btnStXXTRRZWWfd9995XWjx07Vmn+5xq27EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBNfZUcnGjRtL65dffnnf83766adL69u3b+973hn13LLbfsz2tO2Ds6ZdYvsp268Vj4uabRNAVfPZjd8qac0Z0+6UtDsirpK0u3gNYIj1DHtEPCvp7TMmr5W0rXi+TdK6mvsCULN+j9lHIuJE8fxNSSPd3mh7TNJYn8sBUJPKJ+giImxHSX1c0rgklb0PQLP6vfQ2ZXuJJBWP0/W1BKAJ/YZ9l6TT11w2StpZTzsAmuKI8j1r249LWilpsaQpST+W9AdJv5f0WUnHJK2PiDNP4s01L3bjzzKLFy8urfe6//rMzEzX2jvvvFP62fXr15fW9+zZU1rPKiI81/Sex+wRsaFL6fpKHQEYKL4uCyRB2IEkCDuQBGEHkiDsQBL8xDW5ZcuWldZ37NjR2LIfeuih0jqX1urFlh1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkuA6e3Jr1px5L9EPu+aaayrNf/fu3V1rDz74YKV54+Nhyw4kQdiBJAg7kARhB5Ig7EAShB1IgrADSfS8lXStC+NW0gO3bl35MHxbt24trS9cuLC0vnfv3tJ62e2ge92GGv3pditptuxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kAS/Zz8HlN37vcn7vkvSkSNHSutcSx8ePbfsth+zPW374Kxp99ietL2/+Lux2TYBVDWf3fitkua6nckvImJ58fenetsCULeeYY+IZyW9PYBeADSoygm6W20fKHbzF3V7k+0x2xO2JyosC0BF/Yb9l5K+IGm5pBOS7u/2xogYj4gVEbGiz2UBqEFfYY+IqYh4PyJmJP1K0nX1tgWgbn2F3faSWS+/Kelgt/cCGA49r7PbflzSSkmLbR+X9GNJK20vlxSSjkq6pcEe0cOmTZu61mZmZhpd9ubNmxudP+rTM+wRsWGOyY820AuABvF1WSAJwg4kQdiBJAg7kARhB5LgJ65ngeXLl5fWV69e3diyd+7cWVo/fPhwY8tGvdiyA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EASDNl8Fpieni6tL1rU9a5gPT333HOl9RtuuKG0fvLkyb6XjWYwZDOQHGEHkiDsQBKEHUiCsANJEHYgCcIOJMHv2c8Cl156aWm9yu2iH3nkkdI619HPHWzZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJrrMPgS1btpTWFyxo7v/kvXv3NjZvDJee/4psL7W9x/bLtl+y/YNi+iW2n7L9WvHY/x0UADRuPpuM9yT9MCKulvQVSd+3fbWkOyXtjoirJO0uXgMYUj3DHhEnIuKF4vm7kl6RdIWktZK2FW/bJmldU00CqO5jHbPbXibpWkn/lDQSESeK0puSRrp8ZkzSWP8tAqjDvM/82L5A0g5Jt0fEf2fXonPXyjlvJhkR4xGxIiJWVOoUQCXzCrvtT6oT9N9ExBPF5CnbS4r6Eknlt0AF0Kqeu/G2LelRSa9ExAOzSrskbZS0uXgsH9s3sV5DLq9ataq03usnrKdOnepae/jhh0s/OzU1VVrHuWM+x+xflfRtSS/a3l9Mu0udkP/e9nclHZO0vpkWAdShZ9gj4h+S5rzpvKTr620HQFP4uiyQBGEHkiDsQBKEHUiCsANJ8BPXAbj44otL65dddlml+U9OTnat3XHHHZXmjXMHW3YgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1Igt+zD8ChQ4dK672GTR4dHa2zHSTFlh1IgrADSRB2IAnCDiRB2IEkCDuQBGEHknBElL/BXippu6QRSSFpPCIetH2PpO9J+k/x1rsi4k895lW+MACVRcScoy7PJ+xLJC2JiBdsXyjpeUnr1BmP/WRE/Hy+TRB2oHndwj6f8dlPSDpRPH/X9iuSrqi3PQBN+1jH7LaXSbpW0j+LSbfaPmD7MduLunxmzPaE7YlKnQKopOdu/AdvtC+Q9Iykn0bEE7ZHJL2lznH8T9TZ1f9Oj3mwGw80rO9jdkmy/UlJf5T0l4h4YI76Mkl/jIgv9pgPYQca1i3sPXfjbVvSo5JemR304sTdad+UdLBqkwCaM5+z8aOS/i7pRUkzxeS7JG2QtFyd3fijkm4pTuaVzYstO9CwSrvxdSHsQPP63o0HcG4g7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJDHoIZvfknRs1uvFxbRhNKy9DWtfEr31q87eruxWGOjv2T+ycHsiIla01kCJYe1tWPuS6K1fg+qN3XggCcIOJNF22MdbXn6ZYe1tWPuS6K1fA+mt1WN2AIPT9pYdwIAQdiCJVsJue43tw7Zft31nGz10Y/uo7Rdt7297fLpiDL1p2wdnTbvE9lO2Xyse5xxjr6Xe7rE9Way7/bZvbKm3pbb32H7Z9ku2f1BMb3XdlfQ1kPU28GN22+dJelXSNyQdl7RP0oaIeHmgjXRh+6ikFRHR+hcwbH9N0klJ208PrWX7Z5LejojNxX+UiyJi05D0do8+5jDeDfXWbZjxm9Xiuqtz+PN+tLFlv07S6xFxJCJOSfqdpLUt9DH0IuJZSW+fMXmtpG3F823q/GMZuC69DYWIOBERLxTP35V0epjxVtddSV8D0UbYr5D0xqzXxzVc472HpL/aft72WNvNzGFk1jBbb0oaabOZOfQcxnuQzhhmfGjWXT/Dn1fFCbqPGo2IL0u6QdL3i93VoRSdY7Bhunb6S0lfUGcMwBOS7m+zmWKY8R2Sbo+I/86utbnu5uhrIOutjbBPSlo66/VnimlDISImi8dpSU+qc9gxTKZOj6BbPE633M8HImIqIt6PiBlJv1KL664YZnyHpN9ExBPF5NbX3Vx9DWq9tRH2fZKusv0525+S9C1Ju1ro4yNsLyxOnMj2QkmrNXxDUe+StLF4vlHSzhZ7+ZBhGca72zDjanndtT78eUQM/E/Sjeqckf+3pB+10UOXvj4v6V/F30tt9ybpcXV26/6nzrmN70q6VNJuSa9J+pukS4aot1+rM7T3AXWCtaSl3kbV2UU/IGl/8Xdj2+uupK+BrDe+LgskwQk6IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUji/5/q50l6GREBAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAPsAAAD4CAYAAAAq5pAIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAANnUlEQVR4nO3db6wV9Z3H8c9Hbf1HjbAgIRS3BXmCxtj1BjdZIm5q0fWBUE0UEjeITW9jqmmTmmhYY03UpNls2/jEJoAGurISDLigadaypIo8IV4NVQRblGDKH8GGGCzRsMJ3H9yhucV7fnM5/+X7fiU359z5npn55lw+zJyZM/NzRAjA2e+cXjcAoDsIO5AEYQeSIOxAEoQdSOK8bq7MNof+gQ6LCI82vaUtu+2bbf/B9nu2H2plWQA6y82eZ7d9rqQ/SvqOpH2SXpe0KCJ2FuZhyw50WCe27LMlvRcReyLiuKQ1kua3sDwAHdRK2KdK+tOI3/dV0/6G7UHbQ7aHWlgXgBZ1/ABdRCyTtExiNx7opVa27PslTRvx+9eraQD6UCthf13STNvftP1VSQslbWxPWwDarend+Ij43PZ9kl6WdK6kZyLinbZ1BqCtmj711tTK+MwOdFxHvlQD4MuDsANJEHYgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EAShB1IgrADSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKEHUiCsANJEHYgCcIOJEHYgSQIO5BE0+OzS5LtvZI+kXRC0ucRMdCOpgC0X0thr/xzRPy5DcsB0EHsxgNJtBr2kPRb22/YHhztBbYHbQ/ZHmpxXQBa4IhofmZ7akTst32ZpE2S7o+ILYXXN78yAGMSER5tektb9ojYXz0elvSCpNmtLA9A5zQddtsX2/7aqeeS5kna0a7GALRXK0fjJ0t6wfap5fxXRPxPW7oC0HYtfWY/45XxmR3ouI58Zgfw5UHYgSQIO5AEYQeSIOxAEu24EAZ97LrrrivW77rrrmJ97ty5xfqVV155xj2d8sADDxTrBw4cKNbnzJlTrD/77LMNa9u2bSvOezZiyw4kQdiBJAg7kARhB5Ig7EAShB1IgrADSXDV21ngzjvvbFh78skni/NOnDixWK8uYW7olVdeKdYnTZrUsDZr1qzivHXqenv++ecb1hYuXNjSuvsZV70ByRF2IAnCDiRB2IEkCDuQBGEHkiDsQBJcz94Hzjuv/GcYGCgPjrt8+fKGtYsuuqg475YtDQfwkSQ99thjxfrWrVuL9fPPP79hbe3atcV5582bV6zXGRpixLGR2LIDSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKcZ+8DdfduX7FiRdPL3rRpU7FeuhZeko4ePdr0uuuW3+p59H379hXrq1atamn5Z5vaLbvtZ2wftr1jxLQJtjfZ3l09ju9smwBaNZbd+JWSbj5t2kOSNkfETEmbq98B9LHasEfEFklHTps8X9KpfaRVkha0uS8AbdbsZ/bJEXGwev6hpMmNXmh7UNJgk+sB0CYtH6CLiCjdSDIilklaJnHDSaCXmj31dsj2FEmqHg+3ryUAndBs2DdKWlw9XyxpQ3vaAdAptfeNt/2cpBskTZR0SNJPJf23pLWSLpf0gaQ7IuL0g3ijLSvlbnzdNeFLly4t1uv+Rk899VTD2sMPP1yct9Xz6HV27drVsDZz5syWln377bcX6xs25NwGNbpvfO1n9ohY1KD07ZY6AtBVfF0WSIKwA0kQdiAJwg4kQdiBJLjEtQ0eeeSRYr3u1Nrx48eL9ZdffrlYf/DBBxvWPv300+K8dS644IJive4y1csvv7xhrW7I5ccff7xYz3pqrVls2YEkCDuQBGEHkiDsQBKEHUiCsANJEHYgidpLXNu6si/xJa6XXnppw9q7775bnHfixInF+ksvvVSsL1jQuVv8XXHFFcX66tWri/Vrr7226XWvW7euWL/nnnuK9WPHjjW97rNZo0tc2bIDSRB2IAnCDiRB2IEkCDuQBGEHkiDsQBKcZx+jyy67rGHtwIEDLS17+vTpxfpnn31WrC9ZsqRh7dZbby3Oe9VVVxXr48aNK9br/v2U6rfddltx3hdffLFYx+g4zw4kR9iBJAg7kARhB5Ig7EAShB1IgrADSXCefYxK17OXhiWWpEmTJhXrdfdP7+TfqO47AnW9TZkypVj/6KOPmp4XzWn6PLvtZ2wftr1jxLRHbe+3vb36uaWdzQJov7Hsxq+UdPMo038ZEddUP79pb1sA2q027BGxRdKRLvQCoINaOUB3n+23qt388Y1eZHvQ9pDtoRbWBaBFzYb9V5JmSLpG0kFJP2/0wohYFhEDETHQ5LoAtEFTYY+IQxFxIiJOSlouaXZ72wLQbk2F3fbIcybflbSj0WsB9Ifa8dltPyfpBkkTbe+T9FNJN9i+RlJI2ivpBx3ssS98/PHHDWt193Wvuy/8hAkTivX333+/WC+NU75y5crivEeOlI+9rlmzplivO1deNz+6pzbsEbFolMlPd6AXAB3E12WBJAg7kARhB5Ig7EAShB1IovZoPOpt27atWK+7xLWXrr/++mJ97ty5xfrJkyeL9T179pxxT+gMtuxAEoQdSIKwA0kQdiAJwg4kQdiBJAg7kATn2ZO78MILi/W68+h1t7nmEtf+wZYdSIKwA0kQdiAJwg4kQdiBJAg7kARhB5JgyGYUnThxoliv+/dTutV0aThnNK/pIZsBnB0IO5AEYQeSIOxAEoQdSIKwA0kQdiAJrmdP7qabbup1C+iS2i277Wm2f2d7p+13bP+omj7B9ibbu6vH8Z1vF0CzxrIb/7mkn0TELEn/KOmHtmdJekjS5oiYKWlz9TuAPlUb9og4GBFvVs8/kbRL0lRJ8yWtql62StKCTjUJoHVn9Jnd9jckfUvSNkmTI+JgVfpQ0uQG8wxKGmy+RQDtMOaj8bbHSVon6ccRcXRkLYavhhj1ioiIWBYRAxEx0FKnAFoyprDb/oqGg746ItZXkw/ZnlLVp0g63JkWAbRD7W68bUt6WtKuiPjFiNJGSYsl/ax63NCRDtFR06dP73UL6JKxfGb/J0n/Kult29uraUs1HPK1tr8n6QNJd3SmRQDtUBv2iNgqadSL4SV9u73tAOgUvi4LJEHYgSQIO5AEYQeSIOxAElzimtxrr71WrJ9zTnl7UDekM/oHW3YgCcIOJEHYgSQIO5AEYQeSIOxAEoQdSILz7Mnt2LGjWN+9e3exXnc9/IwZMxrWGLK5u9iyA0kQdiAJwg4kQdiBJAg7kARhB5Ig7EASHh7MpUsrs7u3MrTF3XffXayvWLGiWH/11Vcb1u6///7ivDt37izWMbqIGPVu0GzZgSQIO5AEYQeSIOxAEoQdSIKwA0kQdiCJ2vPstqdJ+rWkyZJC0rKIeNL2o5K+L+nURclLI+I3NcviPPuXzCWXXFKsr127tli/8cYbG9bWr19fnHfJkiXF+rFjx4r1rBqdZx/LzSs+l/STiHjT9tckvWF7U1X7ZUT8R7uaBNA5Yxmf/aCkg9XzT2zvkjS1040BaK8z+sxu+xuSviVpWzXpPttv2X7G9vgG8wzaHrI91FKnAFoy5rDbHidpnaQfR8RRSb+SNEPSNRre8v98tPkiYllEDETEQBv6BdCkMYXd9lc0HPTVEbFekiLiUESciIiTkpZLmt25NgG0qjbsti3paUm7IuIXI6ZPGfGy70oq36YUQE+N5dTbHEmvSXpb0qnxeZdKWqThXfiQtFfSD6qDeaVlcertLFN3au6JJ55oWLv33nuL81599dXFOpfAjq7pU28RsVXSaDMXz6kD6C98gw5IgrADSRB2IAnCDiRB2IEkCDuQBLeSBs4y3EoaSI6wA0kQdiAJwg4kQdiBJAg7kARhB5IYy91l2+nPkj4Y8fvEalo/6tfe+rUvid6a1c7e/r5RoatfqvnCyu2hfr03Xb/21q99SfTWrG71xm48kARhB5LoddiX9Xj9Jf3aW7/2JdFbs7rSW08/swPonl5v2QF0CWEHkuhJ2G3fbPsPtt+z/VAvemjE9l7bb9ve3uvx6aox9A7b3jFi2gTbm2zvrh5HHWOvR709ant/9d5tt31Lj3qbZvt3tnfafsf2j6rpPX3vCn115X3r+md22+dK+qOk70jaJ+l1SYsioi/u+G97r6SBiOj5FzBsXy/pL5J+HRFXVdP+XdKRiPhZ9R/l+Ih4sE96e1TSX3o9jHc1WtGUkcOMS1og6W718L0r9HWHuvC+9WLLPlvSexGxJyKOS1ojaX4P+uh7EbFF0pHTJs+XtKp6vkrD/1i6rkFvfSEiDkbEm9XzTySdGma8p+9doa+u6EXYp0r604jf96m/xnsPSb+1/YbtwV43M4rJI4bZ+lDS5F42M4raYby76bRhxvvmvWtm+PNWcYDui+ZExD9I+hdJP6x2V/tSDH8G66dzp2MaxrtbRhlm/K96+d41O/x5q3oR9v2Spo34/evVtL4QEfurx8OSXlD/DUV96NQIutXj4R7381f9NIz3aMOMqw/eu14Of96LsL8uaabtb9r+qqSFkjb2oI8vsH1xdeBEti+WNE/9NxT1RkmLq+eLJW3oYS9/o1+G8W40zLh6/N71fPjziOj6j6RbNHxE/n1J/9aLHhr0NV3S76ufd3rdm6TnNLxb938aPrbxPUl/J2mzpN2S/lfShD7q7T81PLT3WxoO1pQe9TZHw7vob0naXv3c0uv3rtBXV943vi4LJMEBOiAJwg4kQdiBJAg7kARhB5Ig7EAShB1I4v8BBJBcC+eAXosAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "for i in range(5):\n",
    "    plt.imshow(imgs[i], cmap = 'gray')\n",
    "    plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/feature_extraction/text.py:17: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working\n",
      "  from collections import Mapping, defaultdict\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import fetch_mldata\n",
    "mnist = fetch_mldata('MNIST original', data_home = './')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'DESCR': 'mldata.org dataset: mnist-original',\n",
       " 'COL_NAMES': ['label', 'data'],\n",
       " 'target': array([0., 0., 0., ..., 9., 9., 9.]),\n",
       " 'data': array([[0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        ...,\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0],\n",
       "        [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "mnist"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* DESCR 数据集描述\n",
    "* data包含一个数组，每个实例为一行，每个特征为一行\n",
    "* target包含一个带有标签的数组"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "X, y = mnist['data'], mnist['target'] # 训练集和测试集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000, 784)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(70000,)"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "%matplotlib inline\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "some_digit = X[36000]\n",
    "some_digit_image = some_digit.reshape(28,28)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.imshow(some_digit_image,cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "5.0"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y[36000]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 建立测试集和训练集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([47134,  7519, 19055, ..., 51435, 26583,  6391])"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将数据集合交叉洗牌，交叉验证时，每个子集数据分布均匀，有些机器学习算法对训练实例的顺序敏感\n",
    "import numpy as np\n",
    "shuffle_index = np.random.permutation(60000)\n",
    "shuffle_index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "X_train, y_train = X_train[shuffle_index], y[shuffle_index]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       ...,\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0],\n",
       "       [0, 0, 0, ..., 0, 0, 0]], dtype=uint8)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X_train"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练一个二元分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False, False, False, ..., False, False, False])"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 识别数字5， 二元分类 5 或者 非5\n",
    "# 创建目标向量\n",
    "y_train_5 = (y_train == 5)\n",
    "y_train_5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False, False, False, ..., False, False, False],\n",
       "       [False, False, False, ..., False, False, False],\n",
       "       [False, False, False, ..., False, False, False],\n",
       "       ...,\n",
       "       [False, False,  True, ..., False, False, False],\n",
       "       [False, False, False, ..., False, False, False],\n",
       "       [False, False, False, ..., False, False, False]])"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_5.reshape(20,-1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "y_test_5 = (y_test == 5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# SGD 梯度下降 分类器，适合非常大的数据集，独立处理训练集数据，一次一个，适合在线学习\n",
    "from sklearn.linear_model import SGDClassifier\n",
    "sgd_clf = SGDClassifier(random_state = 42)\n",
    "sgd_clf.fit(X_train,y_train_5)\n",
    "\n",
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 性能考核"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 使用交叉验证 测量精度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.9602 , 0.96325, 0.96335])"
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 评估分类器 比 评估回归器 要困难得多\n",
    "# 3个折叠，正确率达到95%以上\n",
    "from sklearn.model_selection import cross_val_score\n",
    "cross_val_score(sgd_clf, X_train, y_train_5, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 把每张图都分类成 非5\n",
    "from sklearn.base import BaseEstimator\n",
    "class Never5Classifier(BaseEstimator):\n",
    "    def fit(self,X,y=None):\n",
    "        pass\n",
    "    def predict(self,X):\n",
    "        return np.zeros((len(X),1),dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False],\n",
       "       [False],\n",
       "       [False],\n",
       "       ...,\n",
       "       [False],\n",
       "       [False],\n",
       "       [False]])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.zeros((len(X),1),dtype=bool)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0.90895, 0.9113 , 0.9087 ])"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "never_5_clf = Never5Classifier()\n",
    "cross_val_score(never_5_clf,X_train,y_train_5,cv=3,scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 准确率超过90%，因为5的图像大约只有10%，你猜一张图不是5，90%的时间都是正确的\n",
    "* 说明准确率无法成为分类的首要性能指标，特别当处理偏科数据集，某些类比其他类更为频繁"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 混淆矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# 评估分类器性能的更好方法是混淆矩阵\n",
    "# A类别实力被分为B类次数 (5 非5)\n",
    "# 想要知道分类器将数字3和数字5混淆多少次，通过混淆矩阵的5行3列\n",
    "\n",
    "from sklearn.model_selection import cross_val_predict\n",
    "\n",
    "y_train_pred = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3)   # 预测结果"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 与cross_val_score相比\n",
    "    * 同样执行交叉验证\n",
    "    * 返回的不是评估分数，是每个折叠的预测\n",
    "    * 每一个实例在模型预测时使用的数据，在训练期间从未见过"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[53634,   945],\n",
       "       [ 1319,  4102]])"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "confusion_matrix(y_train_5,y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 行表示实际类别，列表示预测类别\n",
    "# 第一行 第一列 53634 被正确分为 非5，真负类\n",
    "# 第一行 第二列 945 被错误的分类成 5， 假正类\n",
    "# 第二行 第一列 1319 被错误的分为 非5，假负类\n",
    "# 第二行 第二列 4102 被正确的分为5，真正类\n",
    "# 这种衡量方式太复杂，我们可以用更简单的指标"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[54579,     0],\n",
       "       [    0,  5421]])"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_train_perfect_predictions = y_train_5\n",
    "confusion_matrix(y_train_5,y_train_perfect_predictions)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "## 正类预测的准确率 被称为分类器的精度\n",
    "\n",
    "\n",
    "$\n",
    "\\text{精度} = \\cfrac{TP}{TP + FP}\n",
    "$\n",
    "\n",
    "TP是真正类的数量，FP是假正类的数量\n",
    "\n",
    "\n",
    "\n",
    "$\n",
    "\\text{召回率TPR} = \\cfrac{TP}{TP + FN}\n",
    "$\n",
    "* 检测正类实例的比例\n",
    "FN是假负类的数量\n",
    "![jupyter](./zhaohui.jpg)\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 精度和召回率\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.812760055478502"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import precision_score, recall_score\n",
    "# 实际标签和交叉验证的预测标签，获得精度\n",
    "precision_score(y_train_5, y_train_pred) # 4327 / 4327 + 1276\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.756686958125807"
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 获得召回\n",
    "recall_score(y_train_5, y_train_pred)    #  4327 / 4327 + 1094"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 说明 检测一张图的时候，只有90%的概率是准确的，而且只有64%的数字5 被它检测出来\n",
    "# 精度和召回率合成单一指标，成为 F1 分数，谐波平均值\n",
    "# 平均值平等对待所有的值，谐波平均值会给予较低值更高的权重，只有召回率和精度都很高时，才能获得较高的F1分数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "$\n",
    "F_1 = \\cfrac{2}{\\cfrac{1}{\\text{precision}} + \\cfrac{1}{\\text{recall}}} = 2 \\times \\cfrac{\\text{precision}\\, \\times \\, \\text{recall}}{\\text{precision}\\, + \\, \\text{recall}} = \\cfrac{TP}{TP + \\cfrac{FN + FP}{2}}\n",
    "$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7837218188765762"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "# f1分数\n",
    "f1_score(y_train_5, y_train_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [],
   "source": [
    "# F1分数对那些具有相近精度和召回率 分类器更有利，这不一定符合你的期望\n",
    "# 有时候你更关心精度，有时你能关心召回率\n",
    "# 训练一个分类器检测儿童可以放心观看的视频，你可能要求拦截了很多好的视频，低召回率，保留下来的都是安全的视频，高精度\n",
    "# 不能同时增加精度并减少召回率，反之亦然  。。高召回 低精度"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 精度/召回率权衡\n",
    "\n",
    "* SGDClassifier对每个实例基于决策函数计算一个分值，大于阀值为正类，否则为负类\n",
    "* 中间阀值右侧找到4个真正类 真5 ， 一个假正类 6， 精度为 4/5 80%\n",
    "* 在所有的6个 真正的5 中，分类器找到了4个，召回率为 4/6 67%\n",
    "* 提高阀值，向右移动，精度提高，召回降低\n",
    "* 反之阀值降低，召回提高，精度降低\n",
    "* SKlearn不可以直接设置阀值，可以访问决策分数，\n",
    "* SGDClassifier 默认阀值为0 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 如何设置阀值【临界值】\n",
    "\n",
    "# 用predict_proba得到每个实例属于正类的概率，然后对概率切一下。以LogisticRegression为例\n",
    "# clf = LogisticRegression()\n",
    "# clf.fit(X_train, y_train)\n",
    "# pred_proba = clf.predict_proba(X_test)[:, 1]\n",
    "# threshold = 0.75  # 阀值设置为0.75\n",
    "# pred_label = pred_proba > threshold\n",
    "\n",
    "# pred_proba是每个实例为真的概率\n",
    "# 假设阈值是0.75\n",
    "# pred_label里True就是概率大于0.75的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([39467.02729781])"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 返回决策值decision_function  决策值分数\n",
    "y_scores = sgd_clf.decision_function([some_digit])\n",
    "y_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 默认阈值为0\n",
    "threshold = 0\n",
    "y_some_digit_pred = (y_scores > threshold)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ True])"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([False])"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 提高阀值可以降低召回率，提高阀值到200000，就错了这个图\n",
    "threshold = 200000\n",
    "y_some_digit_pred = (y_scores > threshold)\n",
    "y_some_digit_pred"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    }
   ],
   "source": [
    "# 如何决定使用什么阀值\n",
    "# 返回决策值，而不是预测结果\n",
    "y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3,\n",
    "                             method=\"decision_function\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(60000,)"
      ]
     },
     "execution_count": 47,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 有了y_scores，可以计算所有可能的阀值的精度和召回率\n",
    "y_scores.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import precision_recall_curve\n",
    "# 计算 精度 召回 阈值\n",
    "precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (<ipython-input-49-23286cc2f37f>, line 12)",
     "output_type": "error",
     "traceback": [
      "\u001b[0;36m  File \u001b[0;32m\"<ipython-input-49-23286cc2f37f>\"\u001b[0;36m, line \u001b[0;32m12\u001b[0m\n\u001b[0;31m    plt.show()%0A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%0Agg==\u001b[0m\n\u001b[0m                 ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "# 使用matplotlib 绘制精度和召回相对于阀值的函数图\n",
    "def plot_precision_recall_vs_threshold(precisions, recalls, thresholds):\n",
    "    plt.plot(thresholds, precisions[:-1], \"b--\", label=\"Precision\", linewidth=2)\n",
    "    plt.plot(thresholds, recalls[:-1], \"g-\", label=\"Recall\", linewidth=2)\n",
    "    plt.xlabel(\"Threshold\", fontsize=16)\n",
    "    plt.legend(loc=\"upper left\", fontsize=16)\n",
    "    plt.ylim([0, 1])\n",
    "\n",
    "plt.figure(figsize=(8, 4))\n",
    "plot_precision_recall_vs_threshold(precisions, recalls, thresholds)\n",
    "plt.xlim([-700000, 700000])\n",
    "plt.show()%0A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%0Agg=="
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.\n",
      "findfont: Font family ['sans-serif'] not found. Falling back to DejaVu Sans.\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 21484 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 22238 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 31934 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 24230 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 21484 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 22238 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 31934 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 24230 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "def plot_precision_vs_recall(precisions, recalls):\n",
    "    plt.plot(recalls, precisions, \"b-\", linewidth=2)\n",
    "    plt.xlabel(\"召回\", fontsize=16)\n",
    "    plt.ylabel(\"精度\", fontsize=16)\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plot_precision_vs_recall(precisions, recalls)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 通过选择阀值来实现最佳的精度/召回率权衡"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 目标设定为90%的精度，阀值大概在30000左右 , 设置了阀值为30000\n",
    "y_train_pred_90 = (y_scores > 30000)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8546216633575998"
      ]
     },
     "execution_count": 52,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "precision_score(y_train_5, y_train_pred_90)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7146282973621103"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recall_score(y_train_5, y_train_pred_90)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "* 获得了一个90%精度的分类器，但如果召回太低，精度再高，也不怎么有用\n",
    "* 如果工作中，需要99%的精度，你应该回应，召回率是多少？"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## ROC 曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 本质是 真正类率tpr和假正类率fpr（错误的分为正类的负类实例比例）\n",
    "# 与召回/精度曲线非常相似"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "# 真正  假正 阈值\n",
    "fpr, tpr, thresholds = roc_curve(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.rcParams['font.sans-serif'] = ['SimHei']\n",
    "def plot_roc_curve(fpr, tpr, label=None):\n",
    "    plt.plot(fpr, tpr, linewidth=2, label=label)\n",
    "    plt.plot([0, 1], [0, 1], 'k--')\n",
    "    plt.axis([0, 1, 0, 1])\n",
    "    plt.xlabel('假正类率', fontsize=16)\n",
    "    plt.ylabel('真正类率', fontsize=16)\n",
    "\n",
    "plt.figure(figsize=(8, 6))\n",
    "plot_roc_curve(fpr, tpr)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.960030020877995"
      ]
     },
     "execution_count": 57,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 计算曲线下面积AUC，虚线是随机分类0.5到1\n",
    "from sklearn.metrics import roc_auc_score\n",
    "\n",
    "roc_auc_score(y_train_5, y_scores)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 召回率TPR越高，分类器的假正类FPR就越多\n",
    "* 虚线表示纯随机分类器的ROC曲线，好的分类器应该远离这条线，向左上角\n",
    "* 是使用精度/召回率 PR曲线，还是使用ROC，关键在于 正类非常少或者更关注假正类而不是假负类，选择PR，反之ROC\n",
    "* 例如：前面例子ROC曲线很不错是因为跟负类 非5 相比， 正类 数据5 数量真的很少"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 训练随机森林分类器，比较SGD分类器的ROC曲线和ROC AUC分数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "* 获取训练集中每个实例的分数\n",
    "* RandomForestClassifier 没有descision_function(),但是拥有dict_proda()方法，sklearn中分类器都有这两个中的一个\n",
    "* dict_proda返回一个矩阵，每行一个实例，每列代表一个类别的概率，比如这个图片 70%是5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/ensemble/weight_boosting.py:29: DeprecationWarning: numpy.core.umath_tests is an internal NumPy module and should not be imported. It will be removed in a future NumPy release.\n",
      "  from numpy.core.umath_tests import inner1d\n"
     ]
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "# 随机森林分类器\n",
    "forest_clf = RandomForestClassifier(n_estimators=10, random_state=42)\n",
    "# 交叉验证 交叉执行predict_proba方法 预测概率\n",
    "y_probas_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3,\n",
    "                                    method=\"predict_proba\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1., 0.],\n",
       "       [1., 0.],\n",
       "       [1., 0.],\n",
       "       ...,\n",
       "       [1., 0.],\n",
       "       [1., 0.],\n",
       "       [1., 0.]])"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_probas_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 绘制ROC曲线，需要决策值不是概率，直接使用正类的概率作为决策值：\n",
    "y_scores_forest = y_probas_forest[:, 1] \n",
    "# 真正  假正 阈值\n",
    "fpr_forest, tpr_forest, thresholds_forest = roc_curve(y_train_5,y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 0., 0., ..., 0., 0., 0.])"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y_scores_forest"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:214: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0.0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 20551 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 27491 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 31867 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 29575 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n",
      "/usr/local/lib/python3.7/site-packages/matplotlib/backends/backend_agg.py:183: RuntimeWarning: Glyph 30495 missing from current font.\n",
      "  font.set_text(s, 0, flags=flags)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 继承了上边的图\n",
    "plt.figure(figsize=(8, 6))\n",
    "plt.plot(fpr, tpr, \"b:\", linewidth=2, label=\"SGD\")\n",
    "plot_roc_curve(fpr_forest, tpr_forest, \"Random Forest\")\n",
    "plt.legend(loc=\"lower right\", fontsize=16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9926697712647483"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Rand 比SGD 好很多，ROC AUC的分数也高很多\n",
    "roc_auc_score(y_train_5, y_scores_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.9825935596170583"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 再看一下 精度和召回率 也很高\n",
    "y_train_pred_forest = cross_val_predict(forest_clf, X_train, y_train_5, cv=3)\n",
    "precision_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.8330566316177827"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "recall_score(y_train_5, y_train_pred_forest)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "* 选择合适的指标利用交叉验证来对分类器进行评估\n",
    "* 选择满足需求的精度/召回率权衡\n",
    "* 使用ROC曲线和ROC AUC分数比较多个模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多类别分类器\n",
    "* 尝试5 之外的检测\n",
    "* 多类别分类器 区分两个以上的类别\n",
    "* 随机森里和朴素贝叶斯可以直接处理多个类别\n",
    "* 支持向量机svm和线性分类器只可以处理二元分类器"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 解决方案\n",
    "1. 将数字图片分类0到9，训练10个二元分类器，每个数字一个，检测一张图片时，获取每个分类器的决策分数，哪个最高属于哪个，称为一对多OvA\n",
    "2. 为每一对数字训练一个二元分类器，区分0，1 区分0，2 区分1，2 称为一对一OvO策略，存在N个类别，需要N*（N-1）/2个分类器，最后看哪个类别获胜最多"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 优缺点\n",
    "* OvO 只需要用到部分训练集对其必须区分两个类别进行训练\n",
    "* 对于较小训练集合OvO比较有优势， 大训练集合 OvA 速度快，所以OvA更常用，比如svm 在数据规模扩大时表现糟糕\n",
    "* sklearn 检查到使用二元分类算法进行多类别分类任务，会自动运行OvA，SVM分类器除外"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([3.])"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 预测结果 二元分类器进行多次训练\n",
    "sgd_clf.fit(X_train, y_train)\n",
    "sgd_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-175308.86644932, -471150.73488156, -245119.55163697,\n",
       "         147991.44847476, -498657.27145108,   39467.02729781,\n",
       "        -661935.94725692, -214845.10755858, -545108.36924001,\n",
       "        -605187.61946166]])"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 内部实际上训练了10个二元分类器，获得图片的决策分数，然后选择了分数最高的类别\n",
    "# 返回10个分数，每个类别1个\n",
    "some_digit_scores = sgd_clf.decision_function([some_digit])\n",
    "some_digit_scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 拿到分数最高的索引\n",
    "np.argmax(some_digit_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.])"
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 目标类别列表会存储在classes_这个属性中，按值大小排列，分类标签\n",
    "sgd_clf.classes_"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.0"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 通过索引 来拿到分类标签中对应的值\n",
    "sgd_clf.classes_[np.argmax(some_digit_scores)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用OvO策略，一对一或者一对多\n",
    "from sklearn.multiclass import OneVsOneClassifier\n",
    "# 把二元分类器，封装成 ovo\n",
    "ovo_clf = OneVsOneClassifier(SGDClassifier(max_iter=5, tol=-np.infty, random_state=42))\n",
    "# 训练\n",
    "ovo_clf.fit(X_train, y_train)\n",
    "ovo_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "45"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 多个ovo\n",
    "len(ovo_clf.estimators_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([5.])"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用随机森林 训练 \n",
    "forest_clf.fit(X_train, y_train)\n",
    "forest_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0. , 0. , 0. , 0.1, 0. , 0.9, 0. , 0. , 0. , 0. ]])"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 随机森林直接将实例分为多个类别，调用predict_proba()可以获得分类器将每个实例分类为每个类别的概率列表\n",
    "forest_clf.predict_proba([some_digit])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 评估分类器"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.87122575, 0.87449372, 0.81507226])"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 使用交叉验证评估SGD的准确率\n",
    "cross_val_score(sgd_clf, X_train, y_train, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([0.90991802, 0.91124556, 0.90823624])"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 将输入进行简单缩放 ，可以得到准确率 90 %以上\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "# 实例化\n",
    "scaler = StandardScaler()\n",
    "# 数据缩放\n",
    "X_train_scaled = scaler.fit_transform(X_train.astype(np.float64))\n",
    "# 再次评估\n",
    "cross_val_score(sgd_clf, X_train_scaled, y_train, cv=3, scoring=\"accuracy\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 错误分析"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 项目流程\n",
    "1. 探索数据准备的选项\n",
    "2. 尝试多个模型\n",
    "3. 选择最佳模型并用GridSearchCV对参数进行微调\n",
    "4. 尽可能自动化"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 确定了一个相对合适的模型，进一步优化，分析其错误类型\n",
    "* 查看混淆矩阵\n",
    "* 使用cross_val_predict()进行预测\n",
    "* 调用confusion_matrix()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n",
      "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/stochastic_gradient.py:128: FutureWarning: max_iter and tol parameters have been added in <class 'sklearn.linear_model.stochastic_gradient.SGDClassifier'> in 0.19. If both are left unset, they default to max_iter=5 and tol=None. If tol is not None, max_iter defaults to max_iter=1000. From 0.21, default max_iter will be 1000, and default tol will be 1e-3.\n",
      "  \"and default tol will be 1e-3.\" % type(self), FutureWarning)\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[5736,    2,   20,   10,   10,   47,   46,    8,   41,    3],\n",
       "       [   1, 6460,   45,   32,    6,   43,    7,   11,  123,   14],\n",
       "       [  55,   37, 5330,   99,   86,   26,   88,   60,  162,   15],\n",
       "       [  47,   42,  141, 5348,    3,  220,   38,   59,  132,  101],\n",
       "       [  20,   27,   37,    8, 5384,   10,   53,   31,   82,  190],\n",
       "       [  78,   38,   36,  188,   77, 4605,  111,   24,  177,   87],\n",
       "       [  34,   23,   46,    2,   48,   96, 5618,    6,   45,    0],\n",
       "       [  25,   18,   69,   25,   51,   10,    8, 5817,   16,  226],\n",
       "       [  51,  144,   71,  157,   17,  160,   56,   28, 5032,  135],\n",
       "       [  42,   28,   24,   83,  167,   35,    2,  224,   86, 5258]])"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 预测标签\n",
    "y_train_pred = cross_val_predict(sgd_clf, X_train_scaled, y_train, cv=3)\n",
    "# 实际标签和预测标签，进行混淆\n",
    "conf_mx = confusion_matrix(y_train, y_train_pred)\n",
    "conf_mx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 使用matplotlib的matshow 函数来查看混淆矩阵的图像表示\n",
    "plt.matshow(conf_mx, cmap = plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 看起来不错，大多数图片都在主对角线上，说明它们被正确分类\n",
    "# 数字5 看起来比较暗，说明1. 数字5图片较少  2. 分类器在数字5上执行效果不如其他数字上好\n",
    "# 假设把焦点放在错误上，为取得错误率，而不是错误绝对值，需要将混淆矩阵中每个值除以相应类别中的图片数量\n",
    "\n",
    "row_sums = conf_mx.sum(axis=1, keepdims=True)\n",
    "norm_conf_mx = conf_mx / row_sums"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 288x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 用0填充对角线 只保留错误，重新绘制\n",
    "np.fill_diagonal(norm_conf_mx, 0)\n",
    "plt.matshow(norm_conf_mx, cmap=plt.cm.gray)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 每行代表实际类别，每列代表预测类别\n",
    "# 8，9列比较亮，说明许多图片被错误的分类为数字8，9\n",
    "# 类别8，9行也偏亮，说明数字8和9经常会跟其他数字混淆\n",
    "# 有些很暗，比如行1，大多数数字1都被正确的分类，一些和8混淆\n",
    "# 5和3是错误最多的"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 结论\n",
    "* 改进数字8和9的分类\n",
    "* 修正数字3和5的混淆\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 如何优化分类器\n",
    "* 尝试多收集这些数字的训练集\n",
    "* 开发一些新特征来改进分类器\n",
    "* 优化分类器算法\n",
    "* 使用pillow或opencv对图片预处理，让显示模型更突出\n",
    "* 分析单个错误"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x576 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 绘制图片\n",
    "def plot_digits(instances, images_per_row=10, **options):\n",
    "    size = 28\n",
    "    images_per_row = min(len(instances), images_per_row)\n",
    "    images = [instance.reshape(size,size) for instance in instances]\n",
    "    n_rows = (len(instances) - 1) // images_per_row + 1\n",
    "    row_images = []\n",
    "    n_empty = n_rows * images_per_row - len(instances)\n",
    "    images.append(np.zeros((size, size * n_empty)))\n",
    "    for row in range(n_rows):\n",
    "        rimages = images[row * images_per_row : (row + 1) * images_per_row]\n",
    "        row_images.append(np.concatenate(rimages, axis=1))\n",
    "    image = np.concatenate(row_images, axis=0)\n",
    "    plt.imshow(image, cmap = matplotlib.cm.binary, **options)\n",
    "    plt.axis(\"off\")\n",
    "\n",
    "\n",
    "# 查看数字3和数字5的例子\n",
    "cl_a, cl_b = 3, 5\n",
    "X_aa = X_train[(y_train == cl_a) & (y_train_pred == cl_a)]\n",
    "X_ab = X_train[(y_train == cl_a) & (y_train_pred == cl_b)]\n",
    "X_ba = X_train[(y_train == cl_b) & (y_train_pred == cl_a)]\n",
    "X_bb = X_train[(y_train == cl_b) & (y_train_pred == cl_b)]\n",
    "\n",
    "plt.figure(figsize=(8,8))\n",
    "plt.subplot(221); \n",
    "plot_digits(X_aa[:25], images_per_row=5)\n",
    "plt.subplot(222); \n",
    "plot_digits(X_ab[:25], images_per_row=5)\n",
    "plt.subplot(223);\n",
    "plot_digits(X_ba[:25], images_per_row=5)\n",
    "plt.subplot(224); \n",
    "plot_digits(X_bb[:25], images_per_row=5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 左侧两个是被分类为3的图片\n",
    "# 右侧两个是被分类为5的图片\n",
    "# 大多数错误分类的图片看起来还是非常明显的错误\n",
    "# 原因：SGD是一个线性模型，它所做就是为每个像素分配一个各个类别的权重，当它看到新的图像，将加权后的像素强度汇总，从而得到一个分数进行分类\n",
    "# 数字3和5在一部分像素位上有区别，所以分类器很容易将其弄混\n",
    "# 通过上面图像，如果书写3 的连接点左移，分类器可能将其分类为数字5，这个分类器对图像位移和旋转敏感\n",
    "# 减少混淆的方法之一，就是对图像进行预处理，确保位于中心位置并且没有旋转"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多标签分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 为每个实例产生多个类别 ，例如 照片识别多个人脸\n",
    "# 分类器经过训练可以识别小红，小白，小军，一张照片 里有 小红，小白\n",
    "# 经过分类器，应该输出[1,1,0]， 是小红，是小白，不是小军\n",
    "# 输出多个二元标签的分类系统称为多标签分类系统\n",
    "\n",
    "\n",
    "# 有些情况，会想让你的分类器给一个样例输出多个类别。比如思考一个人脸识别器，\n",
    "# 并识别出这个是谁。这就需要对于同一张图片，首先识别出有几个人，并给识别出的人贴上标签。\n",
    "# 这就是多个二值标签的分类系统被叫做多标签分类系统。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',\n",
       "           metric_params=None, n_jobs=1, n_neighbors=5, p=2,\n",
       "           weights='uniform')"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.neighbors import KNeighborsClassifier\n",
    "# 7 8 9 三张\n",
    "y_train_large = (y_train >= 7)\n",
    "#奇数\n",
    "y_train_odd = (y_train % 2 == 1)\n",
    "# 合成综合数据\n",
    "y_multilabel = np.c_[y_train_large, y_train_odd]\n",
    "# 算出距离\n",
    "knn_clf = KNeighborsClassifier()\n",
    "knn_clf.fit(X_train, y_multilabel)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[False,  True]])"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# knn支持多标签分类，不是所有的分类器都支持\n",
    "knn_clf.predict([some_digit])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.97709"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# # 评估多标签分类器方法很多，方法之一就是测量每个标签的F1分数，或者其他二元分类器指标，然后简单平均\n",
    "# y_train_knn_pred = cross_val_predict(knn_clf, X_train, y_multilabel, cv=3)\n",
    "# f1_score(y_multilabel, y_train_knn_pred, average=\"macro\")\n",
    "0.977090"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 上面假设了所有标签都同等重要，也可以给每个标签设置一个权重（该目标标签实例的数量），设置average='weighted'"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 多输出分类"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 例子：构建一个系统去除图片中的噪声，输入一张有噪声的图片，它将输入一张干净的数字图片，分类器输出是多个标签，一个像素一个标签，每个标签多个值0到255"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 分类任务“多输出-多类分类”（或者称为多输出分类）。它是多标签分类的简单泛化，在这里每一个标签可以是多类别的（比如说，可以有多个可能值）\n",
    "\n",
    "# 我们将建立一个系统，它可以去除图片中的噪音。它将有一张混有噪音的图片作为输入，期待他能够输出一个干净的数字图片，用一个像素强度的数组表示，\n",
    "# 注意这个分类器的输出是多标签的（一个像素一个标签）和每个标签可以偶多个值（像素强度取值范围从0到255）。所以他是一个多输出分类系统"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 增加噪声，目标将图片还原为原始图片 创建训练集和测试集\n",
    "# 初始化 噪声 训练数据\n",
    "noise = np.random.randint(0, 100, (len(X_train), 784))\n",
    "# 加到像素\n",
    "X_train_mod = X_train + noise\n",
    "\n",
    "# 测试数据\n",
    "noise = np.random.randint(0, 100, (len(X_test), 784))\n",
    "X_test_mod = X_test + noise\n",
    "y_train_mod = X_train\n",
    "y_test_mod = X_test"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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j7ZlOX/+PLKvws+ePUtzr7766iAWW87K9tceNWoUzWWDozFsgHXHjh00l12BsUr1AB90/cY3vhHEYgNF7F8ysVy2J3lFRQXN/epXv5pzLlt2f+DAAZrLxAYxswcmgfhAd7bYlgh56lDbLgexf0WwpeyxP4sPPfRQEHv44Yc7d2AS1dEWvxLAkszPSwD8uTCHI9Ll1LYlGZfswM3stwD+D8CVZrbPzL4C4FEAN5rZNgD/knkskhS1bUndJW+huPudkV99ssDHIlJSatuSOq3EFBFJlDpwEZFElXQH/H79+qG2trZdLFa0gM1O2bhxI81lI+Kxas9s2fz27dtpLqvI/vzzz9Pcffv25fR8APjYxz6W0+vOnTuXPp/NOPnggw9oLqtg39DQQHNZVfnYObAZH7Hq8WyJPptlBPDtB1hRCiCcaaSq9LljbeC2226juezzj00JnjdvXk7vFVvGLvnRFbiISKLUgYuIJEoduIhIotSBi4gkqqSDmCdOnAiWvcf2pmaV04cPH05z2f7aTU1NJJPvF7xz506a+8Mf/jCIjR49muayJecTJ06kuU888UQQy94nHYgvxWfHENunfMOGDUGMDWwC+W1JMGTIkCAWGxxlA8p79uyhuZWVlUGsqqqK5g4aNKjd49iy/54stjx+4cKFQSw2WMwmCcQ2pmOvO3bs2CDGBraBzldp72l0BS4ikih14CIiiVIHLiKSKHXgIiKJKukgZu/evXHZZZe1i8VWV2av2ASAvn370ty33norp+cDfPAkVoyXrex7+eWXaS7b45vtbQ3wvbDXrFkTxL74xS/S53/pS18KYtdccw3NZSveNm3aRHNramqCWOyz6devXxCLDY4eOZJdtQw4deoUzWUDtLEVltkDaWzgu6eLDRazAct8ChXnk8v24I+tlP7b3/4WxK6//vqc36un0RW4iEii1IGLiCRKHbiISKLUgYuIJEoduIhIoi45C8XMngLwaQCH3H1qJvYDAPcAuLBO90F3f+FSr9WrV69gP+7YzIEtW7YEsdjS8uPHjwex2OwJtud1bIn+uHHjgtjll19Oc6dNmxbElixZQjL5DAC29H/lypX0+WvXrg1isSXIp0+fDmKx2SJsj2822wTgM1lie5KzCvax7QvYjKLYLITsGU35LqUvZNtOTayqPHP77bcHse985zs5P5+110cf5aVG2Z+Z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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 随意找个图片\n",
    "some_index = 5500\n",
    "plt.subplot(121);plt.imshow(X_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.subplot(122);plt.imshow(y_test_mod[some_index].reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 模型训练\n",
    "knn_clf.fit(X_train_mod, y_train_mod)\n",
    "# 模型预测\n",
    "clean_digit = knn_clf.predict([X_test_mod[some_index]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 拿出图片\n",
    "plt.imshow(clean_digit.reshape(28, 28), cmap = matplotlib.cm.binary)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
